package com.lupc.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;

import com.lupc.exception.DAOExcepcion;
import com.lupc.modelo.Idea;
import com.lupc.modelo.Usuario;
import com.lupc.util.ConexionBD;

public class ReporteDAO extends BaseDAO{
	
	
	public Collection<Idea> listar(Integer centroInfoId) throws DAOExcepcion {
		

		Collection<Idea> c = new ArrayList<Idea>();
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		try {
			con = ConexionBD.obtenerConexion();
			String query = "select i.id, i.titulo, i.descripcion,i.estado,i.archivo,i.fecha,i.key1,i.key2,i.key3,i.key4,i.asesor,usuario_id "
					+ "from idea i "
					+"left join usuario u on i.usuario_id=u.id "
					+"where u.centro_info_id=?";
			stmt = con.prepareStatement(query);
			stmt.setInt(1, centroInfoId);
			rs = stmt.executeQuery();
			while (rs.next()) {
				Idea vo = new Idea();
				vo.setId(rs.getInt("id"));
				vo.setTitulo(rs.getString("titulo"));
				vo.setDescripcion(rs.getString("descripcion"));
				vo.setEstado(rs.getString("estado"));
				vo.setArchivo(rs.getString("archivo"));
				vo.setFecha(rs.getDate("fecha"));
				vo.setKey1(rs.getString("key1"));
				vo.setKey2(rs.getString("key2"));
				vo.setKey3(rs.getString("key3"));
				vo.setKey4(rs.getString("key4"));
				Usuario asesor=new Usuario();
				asesor.setId(rs.getInt("asesor"));
				vo.setAsesor(asesor);
				vo.setId(rs.getInt("usuario_id"));
				c.add(vo);
			}

		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} finally {
			this.cerrarResultSet(rs);
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
		return c;
	}
	
}
